package edu.hubu.supermarketmanagementsystem.mapper;


import edu.hubu.supermarketmanagementsystem.entity.Admin;
import edu.hubu.supermarketmanagementsystem.entity.Customer;
import org.apache.ibatis.annotations.Param;

public interface CustomerMapper {

    /**
     * 根据帐号查询用户信息
     * @param username 帐号
     * @return 如果帐号存在则返回查询到用户信息，封装Customer实体类对象中
     */
    public Customer selectByUsername(String username);

    /**
     * 向user用户信息表添加一个用户信息
     * @param customer 要添加的用户信息
     * @return 如果添加成功则返回1，失败则返回0
     */
    int insertCustomer(Customer customer);

    /**
     * 获取顾客名单。
     * @return 顾客表中的顾客基本信息。
     */
    Customer[] getCustomersList();

    /**
     * 更新用户基本信息。
     * @param customer 封装了新的用户基本信息的实体。
     * @return 如果更新成功，则返回<code>1</code>，否则返回<code>0</code>。
     */
    int updateUser(Customer customer);

    /**
     * 更新用户密码。
     * @param id 待更新密码的用户ID。
     * @param password 用于登录的新密码。
     * @return 如果更新成功，则返回<code>1</code>，否则返回<code>0</code>。
     */
    int updateUserPassword(@Param("id") Integer id, @Param("password") String password);

    /**
     * 删除用户。
     * @param id 待删除的用户ID。
     * @return 如果删除成功，则返回<code>1</code>，否则返回<code>0</code>。
     */
    int deleteUser(@Param("id") Integer id);
}

